This specification relates to techniques for providing user mode interrupts from a processor.
Modern processors may include multiple independent processor cores. Each processor core may execute one or more threads at a time. The processor core may be configured to process interrupts from various resources and deliver the interrupts to the currently executing threads. When an interrupt is received from a resource, the processor core may inject the interrupt into the currently executing thread by calling a function that has been configured to receive the interrupt within the code executing in the thread. Execution of the thread will thus be interrupted so that the function can be called to process the interrupt.